The wireless Web represents the convergence of two important technologies: the Internet and wireless communications. The Internet has already changed how people interact, work, entertain, and do business. Wireless technology, such as cellular phones, personal digital assistants (PDAs) or other kinds of wireless pervasive devices, has altered notions of time and place, enabling people to communicate with each other from almost anywhere around the world. Wireless technology has added a mobile dimension to electronic commerce. Nowadays, there are many promising and popular applications that deliver content and services to users on the wireless Web.
In general, wireless pervasive devices have limitations that differentiate them from other general purpose computers. The small screens available on most cellular phones, Personal Digital Assistants (PDAs), and other wireless pervasive devices provide relatively small display sizes (sometimes only a few lines of text). The stateless connection and limited bandwidth of most wireless networks also greatly constrain the amount of information that can be delivered to wireless pervasive devices. Rather than a full keyboard, many wireless devices contain only a few input buttons for entering information.
Wireless Application Protocol (WAP) is one of the most popular, dominant and important technology for wireless Web applications. It is a collection of standards and protocols that provides a development layer for wireless Web applications. WAP is an open technology for delivering Web content to user-agents, browsers or micro-browsers that are built or downloaded from networks into wireless pervasive devices.
The Standard Generalized Markup Language (SGML) is a language that supplies the tools for defining markup languages. HyperText Markup Language (HTML) is such a markup language. HTML is called an SGML application and consists of a well-defined set of elements, attributes, and entities. Since HTML delivers too much information for the limited screen displays of most wireless pervasive devices, Handheld Device Markup Language (HDML) has been developed for use on wireless handheld devices. HDML is much simpler than HTML and is well suited for presentation in many wireless pervasive devices. Furthermore, WAP designs and defines a new format, the Wireless Markup Language (WML), for efficient content delivery to wireless pervasive devices. WML uses a new model of the card and deck metaphor for content delivery. Because WAP delivers a deck of related cards at once, each card representing a screen of information, there is no waiting for the next screen to display. This differs from the wired Web, where clicking on a new link typically requires waiting for the server to deliver a new page. Moreover, wireless Web users usually will not tolerate seemingly endless scrolling or key presses just to retrieve data. Thus, the use of the card and deck metaphor in the user interface design is very important to provide users with a wireless browsing experience that parallels that available over the wired Web.
One of the biggest problems with publishing content on the Web is making sure that it remains current and accurate. It is a very time consuming and tedious process to update an HTML or WML document by editing its data because the content is mixed with both the data and the information telling the user-agents, browsers, or micro-browsers how to present the data. As a result, new markup languages and technologies have been recently developed to allow separation of content data and content presentation information. EXtensible Markup Language (XML) has been developed to just handle the content data of documents. It is a very simple dialect of SGML to fill the gap between SGML's power and complexity and HTML's inadequacy and simplicity. XML documents can be validated to make sure their structure and content data conform to defined rules. These rules are specified in a document called a Document Type Declaration (DTD). In other words, a DTD consists of elements and attribute declarations that define the allowable element structure of an XML document of a specified type. XML schemas can also be used to define document structures. XML schemas can specify the actual data types of each element's content, inherit syntax from other schemas, annotate schemas, use schemas with multiple namespaces, create simple and complex data types, and much more.
A style sheet is a declaration of presentation rules. It is used to specify the exact format of the presentation of a document. A style sheet supplies information to conforming user-agents or browsers as to how to portray an HTML or XML document. Style sheets such as Cascading Style Sheets (CSS) control how HTML content is formatted. XML has its own style language called eXtensible Style Language (XSL). XSL is based on a profile of Document Style and Semantics Specification Language (DSSSL). It is essentially a data driven style mechanism that allows formatting information to be associated with elements in the source document to produce formatted output. Moreover, it provides a standard way of extracting information in an XML document that should be included in the presentation, and expressing how this information should be presented. XSL generally consists of two parts: a transformation language and a formatting language. The transformation language is used to transform documents into different forms, while the formatting language is used to format and style documents in various ways. The transformation language is called extensible Style Language Transformations (XSLT) and the formatting language is called XSL Formatting Objects (XSL-FO). XSL-FO is a set of XML elements that broadly define, for example, regions of a Web page and the appearance of content within those regions. It provides the syntax used to describe the appearance of the document. XSL-FO also provides the means of applying that syntax to existing XML data. Moreover, XSL-FO is the means of writing style sheets specifying how an XML document should change and use new formatting objects in place of its original elements. Put simply, XML enables users to structure data in documents, and XSLT enables users to work with the contents of XML documents such as selecting and manipulating the content and creating other documents. Thus, XSLT provides a complete transformation language that enables users to work with the contents of XML documents without writing program code, transforming those documents into another XML documents, such as HTML, HDML, WML, or other text-based formats. An XSLT style sheet can be read by a Java servlet in a server, a browser, and standalone XSLT engines or processors that work on XML documents. An example of an XSLT engine is the IBM Websphere Transcoding Publisher (WTP). Thus, XSLT is an important tool for controlling how text is displayed and moved around on a Web page, controlling the quality of the user interfaces or the look and feel of Web pages.
Wireless pervasive devices including cellular phones, PDAs and handheld or portable computers come with different form factors. They vary greatly in display size, keypads, supported functions and software keys. Moreover, there are different features, functionalities and capabilities in different mobile devices. Some of these devices have enough computing power and memory such that only limited wireless access to networks is required. Other devices, however, may need network connections and associated bandwidth to delivery full functionality. As a result, the wireless pervasive device itself becomes an integral component of the wireless Web experience. Therefore, it is the quality of user interface or the look and feel of Web pages that generally will determine the success of any wireless Web applications.
As the wired Web becomes more widely used for publishing, electronic commerce, distant learning and the delivery of government services, it is vital that the wired Web be accessible to as many people as possible. Thus, more than one XSLT style sheet is usually read when an XML document is formatted for different devices of different form factors. This XML document can be formatted for printing on paper, displaying on a screen, and formatted for people of physical or sensory disabilities. For example, people with low residual vision often need a larger font size while people with colorblindness often require text in just black and white color. People who are visually impaired may request for an audio version for speech browsers or screen readers. Persons who are hearing impaired may need a version with images replacing different sounds. People who are physically challenged may want keyboard-only navigation or specific navigation tools.
The use of XSLT style sheets in the wireless applications is tedious and cumbersome. The differences among different wireless browsers or user-agents are large enough to have the GUI modified for each browser or user-agent since screen sizes and functions vary a lot. For the output to the wireless pervasive devices, it can be one of the following standards: WML, HDML, i-mode C-HTML, Palm OS HTML, voice XML or others. Moreover, cell phones, PDAs, handheld and portable computers, and other wireless pervasive devices have different screen sizes and functional keys. Just for the case of WML enabled wireless pervasive devices, it is very difficult and almost impossible to construct a single XSLT style sheet to produce a single WML which can be used for different WML enable micro-browsers or user-agents. Generally, different XSLT style sheets have to be manually constructed for different WML enabled PDAs or cell phones. In the setup of a new wireless application, different WMLs have to be generated from these different XSLT style sheets by an XSLT engine or tool. This setup process is very tedious and cumbersome. For dynamic generation, the servlets, JSPs or ASPs can identify the device client by detecting two HTTP header values: User-Agent and Accept. Then, the corresponding XSLT style sheets are chosen for the XSLT engine to produce the corresponding WML documents for the WML enable PDAs or cell phones with a particular browser or user-agent. As a result, the application developer typically has to manually construct quite a number of XSLT style sheets just for one wireless application.